package com.zb.util;


import com.alibaba.fastjson.JSONObject;
import com.zb.exception.SMSException;

/**
 *
 * 短信响应状态码
 * @Author WEN
 * @Date 2023/7/19 0019
 **/
public class SmsStatusCodeUtil {

    /**
     * 短信响应Code码参考：https://www.hnbcbs.com/alfwq/926.html
     * @param resObj
     * @throws SMSException
     */
    public static void smsStatusCode(JSONObject resObj) throws SMSException {
        switch (resObj.getString("Code")) {
            // 短信发送频率超限
            case "isv.BUSINESS_LIMIT_CONTROL" -> {
                throw new SMSException("您发送短信次数频繁，请稍后重试！");
            }
            // 非法手机号 原因：手机号码格式错误
            case "isv.MOBILE_NUMBER_ILLEGAL" -> {
                throw new SMSException("手机号码格式错误！");
            }
            // 黑名单管控 原因： 黑名单管控是指变量内容含有限制发送的内容，例如变量中不允许透传URL。
            case "isv.BLACK_KEY_CONTROL_LIMIT" -> {
                throw new SMSException("短信内容中包含敏感信息，请修正后重发！");
            }
            // 参数超出长度限制 原因：参数超出长度限制。
            case "isv.PARAM_LENGTH_LIMIT" -> {
                throw new SMSException("短信内容参数超出长度限制！");
            }
            //  账户余额不足 原因： 当前账户余额不足。
            case "isv.AMOUNT_NOT_ENOUGH" -> {
//                throw new SMSException("阿里短信温馨提示：当前阿里账户短信余额不足，请登录阿里官网进行短信充值！");
                throw new SMSException("短信余额不足！");
            }
            case "isv.TEMPLATE_PARAMS_ILLEGAL" -> {
                throw new SMSException(resObj.getString("Message"));
            }
            default -> {
                throw new SMSException("短信发送错误：" + resObj.getString("Message"));
            }
        }
    }





}
